package org.zhengquan.dao;

import org.apache.ibatis.annotations.Param;
import org.zhengquan.pojo.SysAclModule;

import java.util.List;

public interface SysAclModuleMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SysAclModule record);

    int insertSelective(SysAclModule record);

    SysAclModule selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysAclModule record);

    int updateByPrimaryKey(SysAclModule record);

    /**
     * 获取所有level下的子模块
     *
     * @param level
     * @return
     */
    List<SysAclModule> selectChildAclModuleListByLevel(@Param("level") String level);

    /**
     * 批量更新部门的level
     *
     * @param sysAclModuleList
     */
    void batchUpdateLevel(@Param("sysAclModuleList") List<SysAclModule> sysAclModuleList);


    /**
     * 根据模块名称,模块id和模块父id判断模块是否重复
     *
     * @param parentId
     * @param aclModuleId
     * @param aclModuleName
     * @return
     */
    int countByNameAndParentId(@Param("parentId") Integer parentId, @Param("aclModuleId") Integer aclModuleId, @Param("aclModuleName") String aclModuleName);

    /**
     * 获取所有权限模块
     * @return
     */
    List<SysAclModule> selectAllAclModule();

    /**
     * 查询所有aclModuleId的子模块
     * @param aclModuleId
     * @return
     */
    int countByParentId(@Param("aclModuleId") Integer aclModuleId);
}